package cn.liwq.study.demo.netty.lab.mahjong.common.codec;

import cn.liwq.study.demo.netty.lab.mahjong.common.protocol.MahjongProtocol;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageEncoder;

import java.util.List;

/**
 * @author lweiqiang
 * @date 2021/5/8
 */
public class MahjongProtocolEncoder extends MessageToMessageEncoder<MahjongProtocol> {

    @Override
    protected void encode(
            ChannelHandlerContext ctx, MahjongProtocol mahjongProtocol, List<Object> out)
            throws Exception {
        // 调用分配器分配一个 ByteBuf
        ByteBuf buffer = ctx.alloc().buffer();
        // 调用协议的编码方法
        mahjongProtocol.encode(buffer);
        // 添加到out 中
        out.add(buffer);
    }
}
